

#ifndef __CCE_MATERIAL_MATERIALPROGRAMOVERVIEW_H__
#define __CCE_MATERIAL_MATERIALPROGRAMOVERVIEW_H__

#include <material/materialeditor.h>
#include <ui_materialgenericlistoverview.h>

class cceMaterialProgramFilterModel;
class cceMaterialProgramTreeModel;
class cceMaterialProgramOverview : public cceMaterialOverviewAbstract
{
	Q_OBJECT
private:
	Ui::MaterialGenericListOverview	_gui;

	cceMaterialProgramFilterModel*	_proxyModel;
	cceMaterialProgramTreeModel*		_model;

  void Edit (const QModelIndex &srcIndex);

	void UpdateButtonState ();

private slots:
	void on_pushButtonAdd_clicked ();
	void on_pushButtonRemove_clicked ();
	void on_pushButtonEdit_clicked ();
	void on_pushButtonClearFilter_clicked ();
  void on_treeView_activated (const QModelIndex &index);
  void on_lineEditFilter_textChanged (const QString &text);

	void TreeViewSelectionChanged (const QItemSelection&, const QItemSelection&);
	
public:
	cceMaterialProgramOverview (QWidget* parent = 0);

  cceMaterialEditorAbstract* CreateEditor(cceMaterialItem *item);
};

#endif /* ! __CCE_MATERIAL_MATERIALPROGRAMOVERVIEW_H__ */

